/*
  Vue的插件的定义有两种形式：
    1. 函数形式

    2. 对象形式
*/

// 将来使用MyPlugin插件时，Vue会将Vue作为参数传入
// function MyPlugin(Vue) {
//   // 给Vue扩展功能
//   // 要求：扩展属性或方法，必须以$开头

//   // 给Vue原型对象上添加了一个叫做$say的方法，将来实例就可以使用了
//   Vue.prototype.$say = function (word) {
//     console.log("hello", word)
//   }

//   // 给Vue本身扩展方法, 将来只有Vue能使用
//   Vue.say = function (word) {
//     console.log("hello", word)
//   }

//   // 扩展指令、过滤器
//   Vue.directive("upper-case", function (el, binding) {
//     el.textContent = binding.value.toUpperCase()
//   })
//   // ...
// }

const MyPlugin = {
  install: function (Vue) {
    // 给Vue扩展功能
    // 要求：扩展属性或方法，必须以$开头

    // 给Vue原型对象上添加了一个叫做$say的方法，将来实例就可以使用了
    Vue.prototype.$say = function (word) {
      console.log("hello", word)
    }

    // 给Vue本身扩展方法, 将来只有Vue能使用
    Vue.say = function (word) {
      console.log("hello", word)
    }

    // 扩展指令、过滤器
    Vue.directive("upper-case", function (el, binding) {
      el.textContent = binding.value.toUpperCase()
    })
    // ...
  },
}
